home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / util / misc / INetKosten.lha / Runtime.rexx < prev   
Encoding:
OS/2 REXX Batch file  |  1996-09-03  |  2.7 KB  |  134 lines

  1. /* Skript zur Abrechnung der Telefonkosten mit OhWeh! */
  2.  
  3. options results
  4.  
  5. if (~show(l,'rexxsupport.library')) then
  6.     addlib('rexxsupport.library',0,-30,0)
  7.  
  8. address command 'c:run c:ohweh!'
  9. address command 'sys:rexxc/waitforport' 'OHWEH.1'
  10.  
  11. temp = 'sys:t/tk.temp'
  12. recent = 'amitcp:bin/telefonkosten'
  13. insgesamt = 'amitcp:bin/inetkosten'
  14.  
  15. /* Nachsehen, ob noch ein Tempfile vorhanden ist */
  16.  
  17. if exists(temp) then do
  18.     call open(in,temp,r)
  19.         zeile = readln(in)
  20.         close(in)
  21.         parse value zeile with datum' | 'zeit' | 'kosten
  22.         login = format(datum,kosten,zeit)
  23.  
  24.         /* Speichern in der Datei seit letztem Anruf */
  25.         call open(out,recent,a)
  26.         writeln(out,login)
  27.         close(out)
  28.  
  29.         /* Speichern in der Gesamtabrechnung */
  30.         call open(out,insgesamt,a)
  31.         writeln(out,login)
  32.         close(out)
  33.  
  34.         delete(temp)
  35.         end
  36. /* Datum laden und zwischenspeichern */
  37.  
  38. datum = date()
  39.  
  40.  
  41. /* Endlosschleife solange OHWeh! läuft. Daten abfragen und
  42. zwischenspeichern */
  43.  
  44. do until ~show(P,'OHWEH.1')
  45.     ergeb = abfrage()
  46.     parse value ergeb with kosten' 'zeit
  47.         call zwspeichern(kosten,zeit)
  48.         address command 'c:wait' 5
  49.         end
  50.  
  51. /* Wenn OhWeh! beendet wurde, dann auslesen der Daten in tk.temp und
  52. speichern in der recent Datei */
  53.  
  54. call open(in,temp,r)
  55. zeile = readln(in)
  56. close(in)
  57.  
  58. parse value zeile with datum' | 'zeit' | 'kosten
  59. daten = format(datum,kosten,zeit)
  60.  
  61. /* Speichern in der Datei seit letzter Abrechnung */
  62.  
  63. call open(out,recent,a)
  64. writeln(out,daten)
  65. close(out)
  66.  
  67. /* Speichern in der Gesamtliste */
  68.  
  69. call open(out,insgesamt,a)
  70. writeln(out,daten)
  71. close(out)
  72.  
  73.  
  74. /* Löschen des Tempfiles. Wenn dieses noch da ist, dann ist der Rechner in
  75. der Zwischenzeit abgestürtzt */
  76.  
  77. delete(temp)
  78.  
  79. exit
  80.  
  81.  
  82.  
  83. /* Abfragen der Zeit und des Preises */
  84.  
  85. abfrage: procedure
  86.  address OHWEH.1
  87.  
  88.  GETVALUE TIME
  89.  zeit = result
  90.  
  91.  GETVALUE NEWPRICE
  92.  kosten = result
  93.  ergebnis = kosten zeit
  94. return(ergebnis)
  95.  
  96. /* Abspeichern der Daten */
  97.  
  98. zwspeichern:
  99.  parse arg kosten,zeit
  100.  address rexx
  101.  call open(out,temp,w)
  102.  auszeile = datum' | 'zeit' | 'kosten
  103.  writeln(out,auszeile)
  104.  close(out)
  105. return
  106.  
  107. /* Formatieren der erhaltenen Daten */
  108.  
  109. format: procedure
  110.  parse arg datum,kosten,zeit
  111.  /* Formatierung der Kosten */
  112.  
  113.  kosten = kosten/100
  114.  parse value kosten with dm'.'pf
  115.  if pf < 10 then pf = pf||0
  116.  kosten = dm'.'pf
  117.  
  118.  /* Formatierung der Zeit */
  119.  if datatype(zeit) = 'NUM' then do
  120.         stunden = zeit%3600
  121.     if stunden < 10 then stunden = 0||stunden
  122.         rest = zeit//3600
  123.  
  124.         minuten = rest%60
  125.     if minuten < 10 then minuten = 0||minuten
  126.         sekunden = rest//60
  127.         if sekunden < 10 then sekunden = 0||sekunden
  128.  
  129.         online = stunden':'minuten':'sekunden
  130.         end
  131.  login = datum'     'online'     'kosten 'DM'
  132. return(login)
  133.  
  134.